<!doctype html>
<html lang="ko">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0">
<link rel="shortcut icon" type="image/x-icon" href="../assets/favicon.ico">
<title>source\jindo.LazyLoading.js - Jindo Component - AjaxUI@NHN</title>
<link rel="stylesheet" type="text/css" href="../assets/prettify/prettify-min.css" media="screen">
<script type="text/javascript">
	var isMobile = (function() {
		var r = window.devicePixelRatio || 1;
		if (/windows phone/i.test(navigator.userAgent)) { r = 2; }
		
		var s = Math.max(screen.width / r, screen.height / r);
		
		var m = s < 1024;
		var href = m ? "api.mobile.css" : "api.css";
		document.write('<link rel="stylesheet" type="text/css" href="../assets/' + href + '" media="screen">');
		
		return m;
	})();
</script>

<script type="text/javascript" src="../assets/jindo.desktop.min.js"></script>
<script type="text/javascript" src="../assets/jindo_component.min.js"></script>
</head>
<body class="api-page">
<div id="wrap" class="api-main"><!-- 2Depth 접기 : lft_fold 추가 -->

	<div id="header">
		<h1><a href="../index.html"><span class="blind">JindoJS</span></a></h1>
		<div class="info">
			<span class="version">version 1.6.0</span>
			<span class="bar">|</span>
			<span class="help"><span class="ic_help"></span><a href="http://devcode.nhncorp.com/projects/jindo-component/issue" target="_blank">버그신고/문의</a></span>
		</div>
		<div class="menu">
			<button type="button" id="toggle_search_btn" class="btn_sch"><span class="blind">검색</span></button>
			<button type="button" id="toggle_list_btn" class="btn_snb btn_snb_on"><span class="blind">메뉴</span></button>
			<!-- [D] 클릭시 btn_sch_on,btn_snb_on 추가 -->
		</div>
	</div>

	<!-- sch_frm -->
	<div class="sch_frm hide_when_small">
		<h2 class="blind">검색</h2>
		<div class="filter">
			<input type="search" id="api-filter" placeholder="검색어를 입력하세요.">
		</div>
		<div id="search-tab" style="display:none;">
			<ul class="tabs">
			<li class="tc-tab">전체</li>
			<li class="tc-tab">키워드</li>
			<li class="tc-tab">클래스</li>
			<li class="tc-tab">메서드</li>
			<li class="tc-tab">프로퍼티</li>
			<li class="tc-tab">이벤트</li>
			</ul>
			<div class="panels">
				<ul id="api-all" class="tc-panel"></ul>
				<ul id="api-keywords" class="tc-panel"></ul>
				<ul id="api-classes" class="tc-panel"></ul>
				<ul id="api-methods" class="tc-panel"></ul>
				<ul id="api-attrs" class="tc-panel"></ul>
				<ul id="api-events" class="tc-panel"></ul>
			</div>

		</div>
	</div>
	<!-- // sch_frm -->

	<!-- container -->
	<div id="container">
		<!-- left-columns -->
		<div id="left-columns" class="sidemenu has_scrollbar">
			<h2 class="blind"><a href="../index.html"><span>APIs</span></a></h2>
<div class="snb depth1 scrollbar hide_when_small">
	<!-- [D] style="width:135px; height:384px; -->
	<div class="scrollbar-box">
		<div class="scrollbar-content">
			<div><ul>
			            <li class="">
			            	<a href="../classes/jindo.Accordion.html" class="">
			                	Accordion
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.AjaxHistory.html" class="">
			                	AjaxHistory
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.BrowseButton.html" class="">
			                	BrowseButton
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Cache.html" class="">
			                	Cache
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Calendar.html" class="">
			                	Calendar
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Canvas.html" class="">
			                	Canvas
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.CheckBox.html" class="">
			                	CheckBox
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.CircularRolling.html" class="">
			                	CircularRolling
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Clipboard.html" class="">
			                	Clipboard
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Component.html" class="">
			                	Component
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.DataBridge.html" class="">
			                	DataBridge
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.DatePicker.html" class="">
			                	DatePicker
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.DefaultTextValue.html" class="">
			                	DefaultTextValue
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Dialog.html" class="">
			                	Dialog
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.DragArea.html" class="">
			                	DragArea
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.DropArea.html" class="">
			                	DropArea
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.DynamicTree.html" class="">
			                	DynamicTree
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Effect.html" class="">
			                	Effect
								
								

							    
						        
						            <span class="flag static" title="static"><span class="blind">static</span></span>
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.FileUploader.html" class="">
			                	FileUploader
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.FloatingLayer.html" class="">
			                	FloatingLayer
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Foggy.html" class="">
			                	Foggy
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Formatter.html" class="">
			                	Formatter
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.HTMLComponent.html" class="">
			                	HTMLComponent
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.InlineTextEdit.html" class="">
			                	InlineTextEdit
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.LayerEffect.html" class="">
			                	LayerEffect
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.LayerManager.html" class="">
			                	LayerManager
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.LayerPosition.html" class="">
			                	LayerPosition
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.LazyLoading.html" class="">
			                	LazyLoading
								
								

							    
						        
						            <span class="flag static" title="static"><span class="blind">static</span></span>
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.ModalDialog.html" class="">
			                	ModalDialog
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.MouseGesture.html" class="">
			                	MouseGesture
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.MultipleAjaxRequest.html" class="">
			                	MultipleAjaxRequest
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.NumberFormatter.html" class="">
			                	NumberFormatter
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.NumericStepper.html" class="">
			                	NumericStepper
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Pagination.html" class="">
			                	Pagination
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Rolling.html" class="">
			                	Rolling
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.RollingChart.html" class="">
			                	RollingChart
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.RolloverArea.html" class="">
			                	RolloverArea
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.RolloverClick.html" class="">
			                	RolloverClick
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.ScrollBar.html" class="">
			                	ScrollBar
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.ScrollBox.html" class="">
			                	ScrollBox
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.SelectArea.html" class="">
			                	SelectArea
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.SelectBox.html" class="">
			                	SelectBox
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Slider.html" class="">
			                	Slider
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.StarRating.html" class="">
			                	StarRating
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.TabControl.html" class="">
			                	TabControl
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.TextRange.html" class="">
			                	TextRange
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Timer.html" class="">
			                	Timer
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Transition.html" class="">
			                	Transition
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.Tree.html" class="">
			                	Tree
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.UIComponent.html" class="">
			                	UIComponent
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.UploadQueue.html" class="">
			                	UploadQueue
								
								

							    
						        
			            	</a>
			            </li>
			        
			            <li class="">
			            	<a href="../classes/jindo.WatchInput.html" class="">
			                	WatchInput
								
								

							    
						        
			            	</a>
			            </li>
			        </ul></div>
		</div>
	</div>
	<div class="scrollbar-v">
		<div class="scrollbar-button-up"></div>
		<div class="scrollbar-track">
			<div class="scrollbar-thumb" style="top: 0px; height: 222px; "></div>
		</div>
		<div class="scrollbar-button-down"></div>
	</div>
</div>


<button type="button" title="펼치기" class="btn_open">바로가기 열기<span class="ic"></span></button>
<button type="button" title="접기" class="btn_close">바로가기 닫기<span class="ic"></span></button>

		</div>
		<!-- // left-columns -->

		<!-- main content -->
		<div id="main">
			<div class="main_fix">
				<div class="content">
	
	<h1 class="blind">source/jindo.LazyLoading.js</h1>
	<div class="tc-panel first">
		<dl class="relation">
			<dt>파일명</dt>
			<dd>jindo.LazyLoading.js</dd>
			<dt>경로</dt>
			<dd>source/</dd>
		</dl>
		<div id="file" class="file">
		    <pre class="code prettyprint linenums">/**
	@fileOverview&nbsp;js파일을&nbsp;동적으로&nbsp;로드하는&nbsp;컴포넌트
	@author&nbsp;senxation
	@version&nbsp;#__VERSION__#
**/

/**
	jindo.LazyLoading&nbsp;컴포넌트는&nbsp;js파일을&nbsp;동적으로&nbsp;로드합니다.
	
	@class&nbsp;jindo.LazyLoading
	@static
	
	@keyword&nbsp;lazy,&nbsp;loading,&nbsp;지연,&nbsp;로딩,&nbsp;성능,&nbsp;defer
**/
jindo.LazyLoading&nbsp;=&nbsp;{
	_bIE&nbsp;:&nbsp;jindo.$Agent().navigator().ie,
	_waLoading&nbsp;:&nbsp;jindo.$A([]),
	_waLoaded&nbsp;:&nbsp;jindo.$A([]),
	_whtScript&nbsp;:&nbsp;jindo.$H({}),
	_whtCallback&nbsp;:&nbsp;jindo.$H({})
};

/**
	js파일을&nbsp;동적으로&nbsp;로드한다.
	
	@method&nbsp;load
	@static
	@param&nbsp;{String}&nbsp;sUrl&nbsp;로드할&nbsp;js파일의&nbsp;경로
	@param&nbsp;{Function}&nbsp;fCallback&nbsp;js파일&nbsp;로드&nbsp;완료후&nbsp;실행할&nbsp;콜백함수
	@param&nbsp;{String}&nbsp;[sCharset=&quot;utf-8&quot;]&nbsp;문자셋
	@remark
		이미&nbsp;로드된&nbsp;파일은&nbsp;다시&nbsp;로드하지&nbsp;않지만,&nbsp;콜백함수(fCallback)는&nbsp;이미&nbsp;로드되어&nbsp;있더라도&nbsp;수행된다.
		경로가&nbsp;정확하다면&nbsp;항상&nbsp;로드가&nbsp;성공한다고&nbsp;가정하고&nbsp;로드중인&nbsp;파일은&nbsp;다시&nbsp;로드할&nbsp;수&nbsp;없다.&nbsp;(ie는&nbsp;로드의&nbsp;실패여부를&nbsp;판단할&nbsp;수&nbsp;없다.)
	@return&nbsp;{Boolean}&nbsp;현재&nbsp;로드중인&nbsp;js파일을&nbsp;로드하는경우에만&nbsp;false를&nbsp;리턴한다.&nbsp;(로드중인&nbsp;파일은&nbsp;다시&nbsp;로드하지&nbsp;않지만,&nbsp;콜백은&nbsp;바인딩된다.)&nbsp;&nbsp;&nbsp;
**/
jindo.LazyLoading.load&nbsp;=&nbsp;function(sUrl,&nbsp;fCallback,&nbsp;sCharset)&nbsp;{
	if&nbsp;(typeof&nbsp;fCallback&nbsp;!=&nbsp;&quot;function&quot;)&nbsp;{
		fCallback&nbsp;=&nbsp;function(){};
	}
	this._queueCallback(sUrl,&nbsp;fCallback);
	if&nbsp;(this._checkIsLoading(sUrl))&nbsp;{
		return&nbsp;false;
	}
	
	if&nbsp;(this._checkAlreadyLoaded(sUrl))&nbsp;{
		this._doCallback(sUrl);
		return&nbsp;true;
	}
	
	this._waLoading.push(sUrl);
	
	var&nbsp;self&nbsp;=&nbsp;this;
	var&nbsp;elHead&nbsp;=&nbsp;document.getElementsByTagName(&quot;head&quot;)[0];&nbsp;
	var&nbsp;elScript&nbsp;=&nbsp;document.createElement(&quot;script&quot;);
	elScript.type&nbsp;=&nbsp;&quot;text/javascript&quot;;
	elScript.charset&nbsp;=&nbsp;sCharset&nbsp;||&nbsp;&quot;utf-8&quot;;
	elScript.src&nbsp;=&nbsp;sUrl;
	this._whtScript.add(sUrl,&nbsp;elScript);
	
	if&nbsp;(this._bIE)&nbsp;{
		elScript.onreadystatechange&nbsp;=&nbsp;function()&nbsp;{
		&nbsp;&nbsp;&nbsp;&nbsp;if(this.readyState&nbsp;==&nbsp;&quot;complete&quot;&nbsp;||&nbsp;this.readyState&nbsp;==&nbsp;&quot;loaded&quot;)&nbsp;{
				self._waLoaded.push(sUrl);
				self._waLoading&nbsp;=&nbsp;self._waLoading.refuse(sUrl);
				self._doCallback(sUrl);
				this.onreadystatechange&nbsp;=&nbsp;null;
		&nbsp;&nbsp;&nbsp;&nbsp;}
		};		
	}&nbsp;else&nbsp;{
		elScript.onload&nbsp;=&nbsp;function()&nbsp;{
			self._waLoaded.push(sUrl);
			self._waLoading&nbsp;=&nbsp;self._waLoading.refuse(sUrl);
			self._doCallback(sUrl);
		};
	}
	elHead.appendChild(elScript);
	return&nbsp;true;
};

jindo.LazyLoading._queueCallback&nbsp;=&nbsp;function(sUrl,&nbsp;fCallback)&nbsp;{
	var&nbsp;aCallback&nbsp;=&nbsp;this._whtCallback.$(sUrl);
	if&nbsp;(aCallback)&nbsp;{
		aCallback.push(fCallback);
	}&nbsp;else&nbsp;{
		this._whtCallback.$(sUrl,&nbsp;[fCallback]);
	}
};

jindo.LazyLoading._doCallback&nbsp;=&nbsp;function(sUrl)&nbsp;{
	var&nbsp;aCallback&nbsp;=&nbsp;this._whtCallback.$(sUrl).concat();
	for&nbsp;(var&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;aCallback.length;&nbsp;i++)&nbsp;{
		this._whtCallback.$(sUrl).splice(i,&nbsp;1);
		aCallback[i]();
	}
};

/**
	로드중인&nbsp;파일을&nbsp;로드&nbsp;중단한다.&nbsp;script&nbsp;태그도&nbsp;제거된다.
	
	@method&nbsp;abort
	@static
	@param&nbsp;{String}&nbsp;sUrl&nbsp;로드중인&nbsp;js파일의&nbsp;경로
	@return&nbsp;{Boolean}&nbsp;성공적으로&nbsp;중단한경우&nbsp;true,&nbsp;로딩중이&nbsp;아니면&nbsp;false를&nbsp;리턴한다.
**/
jindo.LazyLoading.abort&nbsp;=&nbsp;function(sUrl)&nbsp;{
	if&nbsp;(this._checkIsLoading(sUrl))&nbsp;{
		var&nbsp;elScript&nbsp;=&nbsp;this.getScriptElement(sUrl);
		this._waLoading&nbsp;=&nbsp;this._waLoading.refuse(sUrl);
		
		if&nbsp;(this._bIE)&nbsp;{
			elScript.onreadystatechange&nbsp;=&nbsp;null;	
		}&nbsp;else&nbsp;{
			elScript.onload&nbsp;=&nbsp;null;
		}		
		jindo.$Element(elScript).leave();
		this._whtScript.remove(sUrl);
		this._whtCallback.remove(sUrl);
		return&nbsp;true;
	}&nbsp;else&nbsp;{
		return&nbsp;false;
	}
};

jindo.LazyLoading._checkAlreadyLoaded&nbsp;=&nbsp;function(sUrl)&nbsp;{
	return&nbsp;this._waLoaded.has(sUrl);
};

jindo.LazyLoading._checkIsLoading&nbsp;=&nbsp;function(sUrl)&nbsp;{
	return&nbsp;this._waLoading.has(sUrl);
};

/**
	로드된&nbsp;js파일&nbsp;URL의&nbsp;배열을&nbsp;가져온다.
	
	@method&nbsp;getLoaded
	@static
	@return&nbsp;{Array}&nbsp;URL의&nbsp;배열
**/
jindo.LazyLoading.getLoaded&nbsp;=&nbsp;function()&nbsp;{
	return&nbsp;this._waLoaded.$value();
};

/**
	로드중인&nbsp;js파일&nbsp;URL의&nbsp;배열을&nbsp;가져온다.
	
	@method&nbsp;getLoading
	@static
	@return&nbsp;{Array}&nbsp;URL의&nbsp;배열
**/
jindo.LazyLoading.getLoading&nbsp;=&nbsp;function()&nbsp;{
	return&nbsp;this._waLoading.$value();
};

/**
	로드를&nbsp;위해&nbsp;생성된&nbsp;script&nbsp;엘리먼트를&nbsp;가져온다.
	
	@method&nbsp;getScriptElement
	@static
	@param&nbsp;{String}&nbsp;sUrl&nbsp;js파일의&nbsp;경로
	@return&nbsp;{HTMLElement}&nbsp;<code>&amp;lt;script&amp;gt;</code>
**/
jindo.LazyLoading.getScriptElement&nbsp;=&nbsp;function(sUrl)&nbsp;{
	return&nbsp;this._whtScript.$(sUrl)&nbsp;||&nbsp;null;
};</pre>
		</div>
	</div>
</div>

			</div>
		</div>
		<!-- // main content -->

	</div>
	<!-- // container -->

	<!-- footer -->
	<div id="footer">
		<p>Copyright ©<a href="http://nhncorp.com/" target="_blank">NHN Corp.</a> Platform Ajax Team. All Rights Reserved.</p>
	</div>
	<!-- // footer -->

</div>
<!-- // wrap -->

<style type="text/css">

	.item {
		transition:background .2s linear;
		-webkit-transition:background .2s linear;
		-moz-transition:background .2s linear;
		-o-transition:background .2s linear;
		-ms-transition:background .2s linear;
	}
	
	.highlight {
		background-color:#ffffd8 !important;
	}
	
	li.selected a.highlight {
		background-color:#aa8 !important;
	}
	
	.hide-deprecated .deprecated-item, .hide-inherited .inherited-item, .private {
		display:none;
	}
	
	.scrollbar-v, .scrollbar-h { display:none; }
	.scrollbar-show { display:block; }
	
	.api-page .tbl_fold .more_history { display:none; }
	
	/* FILE */
	.file pre.code {
		border:1px solid #ccc;
		padding:0;
	}
	
	.file ol {
		padding-left: 4em;
		background-color: #f9f9f9;
	}

	.file ol li {
		list-style: decimal;
		border-left:1px solid #ccc;
		padding:2px 4px;
	}
	
	.file li.L1, .file li.L3, .file li.L5, .file li.L7, .file li.L9 {
		background-color: #f9f9f9;	
	}

	.file li.L0, .file li.L2, .file li.L4, .file li.L6, .file li.L8 { 
		background-color: #f0f0f0;
	}
	
</style>
<script type="text/javascript" src="../assets/prettify/prettify-min.js"></script>
<script type="text/javascript" src="../assets/hash.js"></script>
<script type="text/javascript" src="../assets/api-list.js"></script>
<script type="text/javascript" src="../assets/api-search.js"></script>
<script type="text/javascript" src="../assets/../api.js?callback=APISearch.setData"></script>
<script type="text/javascript">
	var projectRoot = "../";
	var projectAssets = "../assets";
	
    apiDocs(projectAssets);	
</script>
</body>
</html>